import random
# matplotlib的画图工具
import matplotlib.pyplot as plt
from pylab import mpl

# 设置中文字体
mpl.rcParams['font.sans-serif'] = ['SimHei']
# 设置正常显示符号
mpl.rcParams['axes.unicode_minus'] = False

# 1. 简单折线图

# 解决中文乱码
plt.rcParams['font.sans-serif'] = ['SimHei']

# 准备x，y数据
x = range(61)  # 注意range不包含尾
y_rain = [random.uniform(20, 35) for i in x]
y_temperature = [random.uniform(10, 15) for i in x]

# 创建画布
plt.figure(figsize=(15, 8), dpi=80)  # dpi代表精度

# 绘制折线图
"""
设置图像风格：
color    linestyle
r：红色   "-"：实线
g：绿色   "--"：虚线
b：蓝色   "-."：点划线
w：白色   "："：点虚线
c：青色
y：黄色
k：黑色
"""
plt.plot(x, y_rain, label="降水", color="c", linestyle="--")
plt.plot(x, y_temperature, label="气温", color="k", linestyle=":")

# 添加x，y坐标轴刻度
x_ticks_label = [f"11点{i}分 " for i in x]
y_ticks = range(41)  # 注意range不包含尾
# plt.xticks(x_ticks_label) error：坐标刻度不可以直接利用字符串进行修改
plt.xticks(x[::5], x_ticks_label[::5])  # x轴从0-60每间隔5 显示11点{}分
plt.yticks(y_ticks[::5])  # y轴从0-40每间隔5

# 设置标题
plt.title("简单折线图", fontsize=20)

# 设置图例
"""
loc
"best"：最佳位置
"upper right"
"upper left"
"lower right"
"lower left"
"right"
"left"
"center right"
"center left"
"""
plt.legend(loc="best")

# 设置x，y轴名称
plt.xlabel("时间")
# plt.ylabel("降水量")

# 添加网格, alpha透明度：0->1越来越深
plt.grid(True, linestyle="--", alpha=0.5)

# 图像保存,必须放在show（）前面
plt.savefig("./01.png")

# 显示图像，必须放在末尾，相当于释放资源
plt.show()
